using System;
using System.Linq;
using SubsidiosBussinessLogic.Models;
using SubsidiosBussinessLogic.DataAccess.Interfaces;

namespace SubsidiosBussinessLogic.DataAccess.SqlServerRepository
{
    public class TipoFuncionarioRepository : Repository<TipoFuncionario>, ITipoFuncionarioRepository
    {
        public TipoFuncionarioRepository(IDataContextFactory dataContextFactory) : base(dataContextFactory)
        {
        }

        public IQueryable<TipoFuncionario> GetTipoFuncionarios()
        {
            return All();
        }

        public TipoFuncionario CreateTipoFuncionario()
        {
            return CreateInstance();
        }

        public void DeleteTipoFuncionario(TipoFuncionario tipoFuncionario)
        {
            MarkForDeletion(tipoFuncionario);
            SaveAll();
        }

        public TipoFuncionario FindSingle(Func<TipoFuncionario, bool> func)
        {
            return Single(func);
        }

        public IQueryable<TipoFuncionario> FindWithMatch(Func<TipoFuncionario, bool> func)
        {
            return FindAll(func);
        }

        public void SaveTipoFuncionario()
        {
            SaveAll();
        }

        
    }
}